package core

type Api struct {
	Name     string
	Version  string
	Protocol string

	/**
	超时
	*/
	Timeout Timeout
	/**
	限流
	*/
	RateLimite []RateLimite

	/**
	熔断
	*/
	CircuitBreaker CircuitBreaker

	/**
	线程池
	*/
	ThreadPool ThreadPool

	/**
	是否支持异步
	*/
	IsAsynchronize bool
}

type Timeout struct {
	ConnectionTimeout int
}

type RateLimite struct {
	/**
	基于ip
	基于url
	基于header
	*/
	Name string
	/**
	类型,and或者or
	*/
	Type      string
	Value     int
	ValueUnit string
	Header    string
	/**
	限流后降级处理
	*/
	Fallback func()
}

type CircuitBreaker struct {
	SuccessThreshold string
	FailThreshold    string

	/**
	熔断后降级处理
	*/
	Fallback func()
}

/**
热更新
*/
type HotRefresh struct {
	EnableHotRefresh bool
}

/**
线程池
*/
type ThreadPool struct {
}
